﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DataAccessLayer;
using BusinessLogicLayer;
using System.Globalization;

namespace ChamCong.Admin
{
    public partial class QuanLyNgayNghi : BasePage
    {
        NgayNghiBLL nBLL = new NgayNghiBLL();
        protected void Page_Load(object sender, EventArgs e)
        {
            
            if (!Page.IsPostBack)
            {
                bindDdlYear();
                ddlNam.Items.FindByValue(DateTime.Now.Year.ToString()).Selected = true;    
            }
            
            bindGridView();
            
        }
        public void bindGridView()
        {
            if (nBLL.LayTatCaTheoNam(int.Parse(ddlNam.SelectedValue)).Count > 0)
            {
                dgvNgayNghi.DataSource = nBLL.LayTatCaTheoNam(int.Parse(ddlNam.SelectedValue));
                dgvNgayNghi.DataBind();                
            }
            else
            {
                sbcMsgBox2.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Warning, "Thông báo", "Hiện thời không có dữ liệu!");
            }
        }
        protected void btnThem_Click(object sender, EventArgs e)
        {
            NGAYNGHI n = new NGAYNGHI();

            //chú ý sử dụng!!!!!!!!!!!!!!!!!!!!!!!!!!
            IFormatProvider format = new CultureInfo("vi-VN");

            n.Ngay = (DateTime)Convert.ToDateTime(txtNgay.Text, format);
            n.TenNgayNghi = txtTenNgayNghi.Text;
            if (nBLL.KiemTraTonTai(n.Ngay) == true)
                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Ngày nghỉ đã tồn tại!");
            else
            {
                nBLL.Them(n);
                dgvNgayNghi.DataBind();
                sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Thêm thành công!");
                bindGridView();
            }
        }
        protected void bindDdlYear()
        {
            for (int i = DateTime.Now.AddYears(1).Year; i >= 2010; i--)
            {
                ListItem obj = new ListItem();
                obj.Text = i.ToString();
                obj.Value = i.ToString();
                ddlNam.Items.Add(obj);
            }
            
        }
        protected void dgvNgayNghi_rowdatabound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton imgbtXoa = (ImageButton)e.Row.FindControl("imgbtXoa");
                ImageButton imgbtSua = (ImageButton)e.Row.FindControl("imgbtSua");
                ImageButton imgbtXem = (ImageButton)e.Row.FindControl("imgbtXem");

                if (imgbtXoa != null)
                    imgbtXoa.Attributes["Ngay"] = e.Row.Cells[0].Text;
                if (imgbtSua != null)
                    imgbtSua.Attributes["Ngay"] = e.Row.Cells[0].Text;
                if (imgbtXem != null)
                    imgbtXem.Attributes["Ngay"] = e.Row.Cells[0].Text;
            }
        }

        protected void imgbtXoa_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            DateTime ngay = DateTime.ParseExact(btn.Attributes["Ngay"], "dd/MM/yyyy", null);

            try
            {
                nBLL.Xoa(ngay);
                dgvNgayNghi.DataBind();
                sbcMsgBox2.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Xóa thành công!");
                Reset();
                bindGridView();  
            }
            catch
            {
                sbcMsgBox2.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không thể xóa!");
            }
        }

        protected void imgbtSua_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            DateTime ngay = DateTime.ParseExact(btn.Attributes["Ngay"], "dd/MM/yyyy", null);

            txtNgay.Text = String.Format("{0:dd/MM/yyyy}", ngay);
            txtNgay.Enabled = false;
            txtTenNgayNghi.Text = nBLL.LayTenNgayNghi(ngay).ToString();
            txtTenNgayNghi.Enabled = true;
            ShowEditButton();

        }

        protected void imgbtXem_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            DateTime ngay = DateTime.ParseExact(btn.Attributes["Ngay"], "dd/MM/yyyy", null);

            txtNgay.Text = String.Format("{0:dd/MM/yyyy}", ngay);
            txtNgay.Enabled = false;
            txtTenNgayNghi.Text = nBLL.LayTenNgayNghi(ngay).ToString();
            txtTenNgayNghi.Enabled = false;
            ShowEditButton();
        }

        protected void ShowEditButton()
        {
            btnThem.Visible = false;
            btnUpdate.Visible = true;
        }

        protected void Reset()
        {
            txtNgay.Text = "";
            txtNgay.Enabled = true;
            txtTenNgayNghi.Text = "";
            txtTenNgayNghi.Enabled = true;
            btnUpdate.Visible = false;
            btnThem.Visible = true;
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            Reset();
        }

        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            NGAYNGHI n = new NGAYNGHI();
            //chú ý sử dụng!!!!!!!!!!!!!!!!!!!!!!!!!!
            IFormatProvider format = new CultureInfo("vi-VN");
            n.Ngay = (DateTime)Convert.ToDateTime(txtNgay.Text, format);
            n.TenNgayNghi = txtTenNgayNghi.Text;
            nBLL.Sua(n);
            //dgvNgayNghi.DataBind();
            bindGridView();
            sbcMsgBox1.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Sửa ngày nghỉ thành công!");
            bindGridView(); 
        }

        protected void ddlNam_SelectedIndexChanged(object sender, EventArgs e)
        {
            bindGridView();
        }

        protected void dgvNgayNghi_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            bindGridView();
        }
    }
}